package com.bookcloud.java21.chapter8.使用isAlive和join方法85;

// 测试isAlive和join方法
public class IsAliveAndJoin {
  public static void main(String[] args) {
    System.out.println("主线程开始");
    // 创建一个线程
    Thread thread =
        new Thread(
            new Runnable() {
              @Override
              public void run() {
                System.out.println("自定义子线程");
                for (int i = 0; i < 10; i++) {
                  System.out.println("子线程运行中:" + i);
                }
                try {
                  Thread.sleep(2000);
                } catch (InterruptedException e) {
                  e.printStackTrace();
                }
                System.out.println("子线程结束");
              }
            });
    // 调用isAlive方法
    System.out.println("启动线程前—子线程是否存活:" + thread.isAlive());
    // 启动线程
    thread.start();
    // 调用isAlive方法
    System.out.println("启动线程后—子线程是否存活:" + thread.isAlive());
    System.out.println("主线程等待子线程执行完毕");
    try {
      // 等待子线程执行完毕
      thread.join();
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
    System.out.println("等待子线程执行完毕后再执行下面的方法(1)");
    for (int i = 0; i < 10; i++) {
      System.out.println("主线程运行中:" + i);
      try {
        Thread.sleep(300);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
    System.out.println("===主线程执行完毕=====(2)");
  }
}
